package com.example.emos.wx.service;


import com.example.emos.wx.db.pojo.mq.MessageEntity;
import com.example.emos.wx.db.pojo.mq.MessageRefEntity;

import java.util.HashMap;
import java.util.List;

/**
 * @ClassName MessageService
 * @Author zhangzhixi
 * @Description 对消息进行汇总
 * @Date 2022/09/19 19:57
 * @Version 1.0
 */
public interface MessageService {
    /**
     * 插入消息数据
     *
     * @param entity 消息实体
     * @return 消息
     */
    String insertMessage(MessageEntity entity);

    /**
     * 查询消息
     *
     * @param userId 用户ID
     * @param start  开始页码
     * @param length 每页显示数量
     * @return 消息
     */
    List<HashMap> searchMessageByPage(int userId, long start, int length);

    /**
     * 根据ID查询消息
     *
     * @param id 用户id
     * @return 消息
     */
    HashMap searchMessageById(String id);

    /**
     * 添加消息
     *
     * @param entity 消息实体
     * @return 记录主键值
     */
    String insertRef(MessageRefEntity entity);

    /**
     * 查询未读消息数量
     *
     * @param userId 用户id
     * @return 未读消息
     */
    long searchUnreadCount(int userId);

    /**
     * 查询新接收消息数量
     *
     * @param userId 用户id
     * @return 新接收消息数量
     */
    long searchLastCount(int userId);

    /**
     * 把未读消息变更为已读消息
     *
     * @param id id
     * @return 修改的消息记录数
     */
    long updateUnreadMessage(String id);

    /**
     * 根据ID删除ref消息
     *
     * @param id 消息id
     * @return 删除记录数
     */
    long deleteMessageRefById(String id);

    /**
     * 删除某个用户全部消息
     *
     * @param userId 接收人的id
     * @return 删除的记录数量
     */
    long deleteUserMessageRef(int userId);
}
